package com.indexingsystem.system.service;

import com.indexingsystem.boss.Vo.*;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.IdxProductsThemeWords;
import com.indexingsystem.system.exception.ServiceResultException;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

public interface IdxProductsThemeWordsService {
    int deleteByPrimaryKey(String id);

    int insert(IdxProductsThemeWords record);

    int insertSelective(IdxProductsThemeWords record);

    IdxProductsThemeWords selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(IdxProductsThemeWords record);

    int updateByPrimaryKey(IdxProductsThemeWords record);

    /**
     * 条件查询产品标引主题词列表
     *
     * @param idxProductSelectReqVo
     * @return
     */
    List<IdxProductsThmeDateVo> getProductsThemeWordsList(IdxProductSelectReqVo idxProductSelectReqVo);

    /**
     * 批量删除产品标引主题词列表
     *
     * @param list
     * @return
     */
    Integer deleteByIdBatch(List<String> list);

    /**
     * 多条件分页查询
     *
     * @param idxGetProductThemeWordsList
     * @return
     */
    PagedResult<IdxProductsThmeDateVo> getProductThemeWordsPageList(IdxGetProductThemeWordsList idxGetProductThemeWordsList);

    /**
     * 多条件分页查询数量
     *
     * @param idxGetProductThemeWordsList
     * @return
     */
    Integer getProductThemeWordsPageListCount(IdxGetProductThemeWordsList idxGetProductThemeWordsList);

    /**
     * 获得产品标引结果列表
     * @param reqVo
     * @return
     */
    List<ExportThemeWordsResVo> getExportIndexingThemeWordsList(ExportThemeWordsReqVoSingle reqVo);

    /**
     * 导出标引列表（xml/excel）
     * @param reqVo
     * @throws FileNotFoundException
     * @throws UnsupportedEncodingException
     * @throws ServiceResultException
     */
    String exportProductIndexing(ExportThemeWordsReqVo reqVo, ExportThemeWordsReqVoSingle reqVoSingle) throws IOException;

}
